package cn.yh.nft.turbo.web.util;

import cn.yh.nft.turbo.base.response.PageResponse;
import cn.yh.nft.turbo.web.vo.MultiResult;

import static cn.yh.nft.turbo.base.response.ResponseCode.SUCCESS;

/**
 * @ClassName: MultiResultConvertor
 * @Author: 草莓爱上啵啵
 */
public class MultiResultConvertor {

    /**
 * 将PageResponse对象转换为MultiResult对象
 * 此方法用于将分页响应数据转换为一个多结果对象，便于统一处理和传输
 *
 * @param <T> 泛型参数，表示数据记录的类型
 * @param pageResponse 分页响应对象，包含分页数据和元数据
 * @return 返回一个MultiResult对象，封装了转换后的数据
 */
public static <T> MultiResult<T> convert(PageResponse<T> pageResponse){
    // 创建一个MultiResult对象，初始化状态为成功，包含全部数据和分页信息
    MultiResult<T> multiResult = new MultiResult<T>(true, SUCCESS.name(), SUCCESS.name(), pageResponse.getDatas(), pageResponse.getTotal(), pageResponse.getCurrentPage(), pageResponse.getPageSize());
    // 返回封装好的MultiResult对象
    return multiResult;
}

}
